
<div class="layui-form seller-form"  action="" >
    <div class="layui-form-item">
        <div class="layui-inline">
            <label class="layui-form-label">商品名称：</label>
            <div class="layui-input-inline">
                <input type="text" name="name" lay-verify="title" style="width:200px;" placeholder="请输入商品名称" autocomplete="off" class="layui-input">
            </div>
        </div>

        <div class="layui-inline">
            <button class="layui-btn layui-btn-sm" lay-submit lay-filter="goods-search">查询</button>
        </div>
        <div class="layui-inline"><div class="layui-form-mid">您选择了:<span id="tagGoodsNum">0</span>个商品</div></div>
    </div>
</div>

<table id="tagGoodsTable" lay-filter="tagGoodsTable"></table>

<script>
    var ids = {};
    var table_data=new Array();
    layui.use(['form', 'laydate','table'], function(){
        layui.table.render({
            elem: '#tagGoodsTable',
            height: '420',
            page: 'true',
            limit:'10',
            url: "{:url('index/tagSelectGoods')}?_ajax=1",
            id:'tagGoodsTable',
            cols: [[
                {type:'checkbox'},
                {field: 'name', title: '商品名称',align:'center'},
                {field:'price', width:100,title:'销售价', align: 'center', templet:function(data){return '￥'+data.price}},
//                {field:'cat_name', width:150,title:'分类', align: 'center'},
                {field:'type_name', width:150,title:'类型', align: 'center'},
                {field:'brand_name', width:100,title:'品牌', align: 'center'},
            ]],
            done: function(res, curr, count){
                //数据表格加载完成时调用此函数
                //如果是异步请求数据方式，res即为你接口返回的信息。
                //如果是直接赋值的方式，res即为：{data: [], count: 99} data为当前页数据、count为数据总长度

                //设置全部数据到全局变量
                table_data=res.data;

                //在缓存中找到id ,然后设置data表格中的选中状态
                //循环所有数据，找出对应关系，设置checkbox选中状态
                for(var i=0;i< res.data.length;i++){
                    if(ids[res.data[i].id]){
                        //这里才是真正的有效勾选
                        res.data[i]["LAY_CHECKED"]='true';
                        //找到对应数据改变勾选样式，呈现出选中效果
                        var index= res.data[i]['LAY_TABLE_INDEX'];
                        $('#tagGoodsTable + div .layui-table-body tr[data-index=' + index + '] input[type="checkbox"]').prop('checked', true);
                        $('#tagGoodsTable + div .layui-table-body tr[data-index=' + index + '] input[type="checkbox"]').next().addClass('layui-form-checked');
                    }
                }
                //设置全选checkbox的选中状态，只有改变LAY_CHECKED的值， table.checkStatus才能抓取到选中的状态
                var checkStatus = layui.table.checkStatus('tagGoodsTable');
                if(checkStatus.isAll){
                    $('#tagGoodsTable + div .layui-table-header th[data-field="0"] input[type="checkbox"]').prop('checked', true);
                    $('#tagGoodsTable + div .layui-table-header th[data-field="0"] input[type="checkbox"]').next().addClass('layui-form-checked');
                }
            }
        });
        //监听表格复选框选择
        layui.table.on('checkbox(tagGoodsTable)', function(obj){
            if(obj.checked){
                if(obj.type=='one'){
                    ids[obj.data.id] = obj.data;
                }else{
                    for(var i=0;i<table_data.length;i++){
                        ids[table_data[i].id] = table_data[i];
                    }
                }
                //the_val[obj.data.id] = obj.data;
            }else{
                if(obj.type=='one'){
                    delete ids[obj.data.id];
                }else{
                    for(var i=0;i<table_data.length;i++){
                        delete ids[table_data[i].id];
                    }
                }
            }
            $('#tagGoodsNum').html(Object.getOwnPropertyNames(ids).length);
            console.log(ids);
        });
        layui.form.on('submit(goods-search)', function(data){
            layui.table.reload('tagGoodsTable', {
                where: data.field
                ,page: {
                    curr: 1 //重新从第 1 页开始
                }
            });
            return false; //阻止表单跳转。如果需要表单跳转，去掉这段即可。
        });
    });
</script>
